package com.africanmoviesmobile.webservice.inf;

import java.io.IOException;

import org.pixmob.httpclient.HttpClientException;

import com.africanmoviesmobile.webservice.AsyncCallback;
import com.africanmoviesmobile.webservice.WebServiceException;


public interface Movie extends WebserviceObject {

	public int getId();

	public String getTitle();

	public String getSynopsis();

	public String getRunTime();

	public String getReleaseDate();

	public String getMpaaRating();

	public String getLanguage();
	
	public String getCountry();

	public String getCover();
	
	public String getMobileScreenshot();

	public String getGenres();
	
	public String getShortCast();

	public Celeb[] getFullCast();

	public Celeb[] getWriters();

	public Celeb[] getProducers();

	public Celeb[] getDirectors();

	public String getCdnUrl();

	public String getPreviewCdnUrl();
	
	public int getRatings();
	
	public int getRatingsCount();
	
	public int getRatingsSync() throws HttpClientException, IOException, WebServiceException;
	public void getRatings(final AsyncCallback listener, final Object state);
	
	public int getRatingsCountSync() throws HttpClientException, IOException, WebServiceException;
	public void getRatingsCount(final AsyncCallback listener, final Object state);

	public int getUserRating(String email) throws HttpClientException, IOException, WebServiceException;
	public void getUserRating(final String email, final AsyncCallback listener, final Object state);
	
	public boolean rate(String email, int rating) throws HttpClientException, IOException, WebServiceException;
	public void rate(final String email, final int rating, final AsyncCallback listener, final Object state);
}
